Verifica TDP

Architetture Software

Creazione di un modello software a livelli separati per i seguenti benefici:

·       Individuazione degli errori semplificata e mirata;

·       Codice ordinato;

·       Individuazione del codice da modificare più semplice.

Multi Tier/Layer è il termine che definisce un’architettura software sviluppata su più livelli. In questi modelli l’applicativo è sviluppato su più livelli indipendenti che possono comunicare fra loro e dividendosi i compiti.

Ogni livello può comunicare solamente con i livelli immediatamente vicini a lui, ogni livello deve essere indipendente dagl’altri per quanto riguarda implementazione e architettura interna.

L’indipendenza logica è l’indipendenza per la quale è possibile modificare un livello senza intaccare gli altri

L’indipendenza fisica è tale se è possibile modificare la posizione o tipologia dei file/DB senza avere ripercussioni sulla struttura degli altri livelli.

Layer(logico) riguarda una separazione logica spesso dentro la stessa applicazione.

Tier(fisico) riguarda una separazione fisica degli applicativi, se sono ben progettati gli applicativi sono indipendenti fra loro.

I software si possono suddividere in livelli, storicamente i livelli sono 3:

·       Presentazione: Il software più esterno che di solito si occupa di fare vedere graficamente i dati agli utenti (GUI)

·       Logico: quello che esegue le elaborazioni dati che il livello Presentazione gli invia da parte dell’utente, e restituisce i risultati (Classi)

·       Data Access: quello che gestisce e manipola i dati su memoria di massa.

Oltre a questi abbiamo i Dati veri e DBMS – Database

ANNI ’80 – UNICO LIVELLO

Caratteristiche: Tutti i livelli uniti, sullo stesso software e mancanza di indipendenza fisica e logica

Nome: Stand Alone

Problemi:

·       Scalabilità: se la mole di dati e/o computazioni cresce spesso è necessario riscrivere il software in ogni sua parte

·       Portabilità: Dipende completamente dalla macchina e dal SO

·       Manutenzione: Spesso è difficile perché è difficile individuare la sezione del software che esegue quel determinato compito

ANNI ’80 – ’90 I LIVELLI SI SEPARANO

Si è necessitato di una separazione dei livello rimanendo comunque in un unico tier.

L’indipendenza logica non è mai assoluta e per questo si tende almeno a tener separati i livelli di presentazione da quello delle classi anche se la modifica di un algoritmo rende spesso necessaria la modifica di interfacce o altre classi

ANNI ’90 – STRUTTURA 2 TIER

Nome: Architettura Client – Server

Caratteristiche: Viene implementata l’indipendenza fisica fra il livello fisico (Server) e quello di presentazione (Client). I livelli Business Logic e Presentazione sono ancora strettamente legati.

Le applicazioni Client – Server possono usare protocolli o applicativi realizzati ad hoc per comunicare o protocolli standard

Applicazioni Web usano applicativi preesistenti (Browser) e Server (ISS, Apache)

ANNI 2000 – APPLICAZIONI A 3 TIER

Nasce per Web

Utilizzato anche dai Client-Server

Il livello di presentazione può comunicare solo con il Logico e non Con il Data Access

Tipicamente: Web server e DBMS sono sulla stessa macchina Server

Il livello presentazione sta sul client e di solito progettato con linguaggi standard

MULTI – TIER

Possibili moduli aggiuntivi potrebbero essere: Networking, Security, Data Access

Web Service SOAP e REST

Sono i due modi di approcciare il mondo dei Servizi Web, anche se hanno lo stesso fine.

I Soap Web Service mettono in risalto il concetto di Servizio, mentre i Rest mettono in risalto il concetto di risorsa

SOA -> Service Oriented Service(SOAP)

ROA -> Resource Oriented Service(REST)

SOAP:

·       Non sfrutta a pieno il protocollo http, ma lo usa per il trasporto

·       Nasce come adattabilità al web a tecnologie di interoperabilità esistenti indipendentemente dal web

·       Prevedono l’uso di WSDL per descrivere l’interfaccia di un servizio

·        Definisce uno standard indipendente dal Web e dall’infrastruttura può essere usata anche su protocolli diversi dal http.

REST:

·       Sfrutta appieno http come protocollo di livello applicativo, e ne utilizza completamente le funzionalità (sicurezza, indirizzamento)

·       Conserva tutte le caratteristiche del Web evidenziandone la predisposizione ad essere una piattaforma per applicazioni distribuite

·       Non prevede esplicitamente nessuna modalità di interazione con le risorse, sono dentro il protocollo http

·       REST usa il Web ad architettura per la programmazione distribuita, non aggiunge sovrastrutture

In un contesto RESTful attraverso il CRUD (Create, Read, Update, Delete) per interagire con le risorse e i metodi http.

La Service Oriented Architecture (SOA) è un’architettura multi strato per costruire servizi sul web o su rete basata sull’architettura Client – Server.

SOA utilizza una logica orientata ai servizi → il sistema software è organizzato in sottoprogrammi (indipendenti fisicamente) detti servizi richiamabili dai programmi client all’occorrenza.

I servizi implementano l’indipendenza fisica di una funzionalità così come le funzioni o le classi (se ben progettate) ne implementano l’indipendenza logica.

SOA è una architettura “looselycoupled” (debolmente accoppiata) → i servizi girano su piattaforme hardware e software potenzialmente diverse tra loro e generalmente diverse da quelle su cui girano i client: Oltre all’indipendenza logica implementano l’indipendenza fisica.

I client richiamano i servizi attraverso interfacce pubbliche, i servizi funzionano anche se re implementati, aggiornati o spostati senza dover intervenire sul client: finché non se ne modifica l’interfaccia.

Definizione del W3C (World Wide Web Consortium) → un Web Service (servizio web), è un “sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su di una medesima rete ovvero in un contesto distribuito”.

SOAP -> XML -> HTTP -> CLIENT

PROTOCOLLI DI COMUNICAZIONE:

HTTP -> Hypertext Transfert Protocol

SOAP -> Simple Object Access Protocol

WSDL -> Web Service Description Language

UDDI -> Universal Description Discovery and Integration: Catalogazione e scoperta dei servizi.

PROTOCOLLO SOAP:

SOAP è il protocollo su cui si basano i servizi Web, I messaggi Soap sono scritti in linguaggio XML.

L'uso del protocollo è adeguato al paradigma della programmazione orientata agli oggetti.

Il framework definito da SOAP è composto dai seguenti elementi:

·      Initial SOAP sender - è il nodo che genera il messaggio;

·      SOAP sender - è il componente incaricato di spedire i messaggi SOAP;

·      SOAP intermediary - è il componente che si occupa di processare l'header del messaggio SOAP, girandolo al corretto receiver;

·      SOAP receiver - è il componente incaricato di ricevere i messaggi SOAP;  

·      Ultimate SOAP receiver - è il nodo che riceve il messaggio, ovvero il destinatario

 

 

 

WSDL:

Mediante WSDL può essere infatti descritta (in linguaggio XML) l'interfaccia pubblica di un Web Service che indica come interagire con un determinato servizio

In particolare contiene informazioni su:

·       Cosa può essere utilizzato

·       Come utilizzarlo: il protocollo di comunicazione da utilizzare per accedere al servizio

·       Dove utilizzare il servizio

Svantaggi del Web Service:

-Performance: utilizzando XML richiede l’inserimento di dati supplementari indispensabili. Ciò li rende poco adatti a flussi di dati intensi

-HTTP: Bisogna integrare nel codice un gestore di richieste web oppure averne uno esterno.